package com.ruoyi.team.trash.service;

import com.ruoyi.team.trash.domain.AchievementTrash;
import com.ruoyi.team.trash.domain.vo.AchievementTrashVO;

import java.util.List;

/**
 * 成果移除箱Service接口
 *
 * @author ruoyi
 * @date 2025-01-24
 */
public interface IAchievementTrashService
{
    /**
     * 查询成果移除箱
     *
     * @param id 成果移除箱主键
     * @return 成果移除箱
     */
    public AchievementTrash selectAchievementTrashById(Long id);

    /**
     * 查询成果移除箱列表
     *
     * @param achievementTrash 成果移除箱
     * @return 成果移除箱集合
     */
    public List<AchievementTrashVO> selectAchievementTrashList(AchievementTrash achievementTrash);

    /**
     * 新增成果移除箱
     *
     * @param achievementTrash 成果移除箱
     * @return 结果
     */
    public int insertAchievementTrash(AchievementTrash achievementTrash);

    /**
     * 修改成果移除箱
     *
     * @param achievementTrash 成果移除箱
     * @return 结果
     */
    public int updateAchievementTrash(AchievementTrash achievementTrash);

    /**
     * 批量删除成果移除箱
     *
     * @param ids 需要删除的成果移除箱主键集合
     * @return 结果
     */
    public int deleteAchievementTrashByIds(Long[] ids);

    /**
     * 删除成果移除箱信息
     *
     * @param id 成果移除箱主键
     * @return 结果
     */
    public int deleteAchievementTrashById(Long id);

    /**
     * 根据 achievement_type 和 achievement_id 恢复对应表的记录
     *
     * @param achievementType 成果类型
     * @param achievementId 成果对应id
     * @return 结果
     */
    int restoreAchievement(String achievementType, Long achievementId);
}
